home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / libol / resource.h.x < prev    next >
C/C++ Source or Header  |  2005-10-16  |  1KB  |  60 lines

  1. #ifndef CLASS_DEFINE
  2. struct resource
  3. {
  4.   struct ol_object super;
  5.   int alive;
  6.   void (*(kill))(struct resource *self);
  7. };
  8. extern struct ol_class resource_class;
  9. #endif /* !CLASS_DEFINE */
  10.  
  11. #ifndef CLASS_DECLARE
  12. static void do_resource_free(struct ol_object *o)
  13. {
  14.   struct resource *i = (struct resource *) o;
  15.   dont_free_live_resource(i->alive);
  16. }
  17.  
  18. struct ol_class resource_class =
  19. { STATIC_HEADER,
  20.   0, "resource", sizeof(struct resource),
  21.   NULL,
  22.   do_resource_free
  23. };
  24. #endif /* !CLASS_DECLARE */
  25.  
  26. #ifndef CLASS_DEFINE
  27. struct resource_list
  28. {
  29.   struct ol_object super;
  30.   struct ol_queue q;
  31.   struct resource_node * (*(remember))(struct resource_list *self, struct resource *r);
  32.   void (*(kill_resource))(struct resource_list *self, struct resource_node *n);
  33.   void (*(kill_all))(struct resource_list *self);
  34. };
  35. extern struct ol_class resource_list_class;
  36. #endif /* !CLASS_DEFINE */
  37.  
  38. #ifndef CLASS_DECLARE
  39. static void do_resource_list_mark(struct ol_object *o, 
  40. void (*mark)(struct ol_object *o))
  41. {
  42.   struct resource_list *i = (struct resource_list *) o;
  43.   do_mark_resources(&(i->q), mark);
  44. }
  45.  
  46. static void do_resource_list_free(struct ol_object *o)
  47. {
  48.   struct resource_list *i = (struct resource_list *) o;
  49.   do_free_resources(&(i->q));
  50. }
  51.  
  52. struct ol_class resource_list_class =
  53. { STATIC_HEADER,
  54.   0, "resource_list", sizeof(struct resource_list),
  55.   do_resource_list_mark,
  56.   do_resource_list_free
  57. };
  58. #endif /* !CLASS_DECLARE */
  59.  
  60.